package org.NooLab.docobserver.structures;

import java.io.FileNotFoundException;
import java.util.Map;




public interface DocumentObserverIntf { 

	public static final int _STATUS_FOLDER_REGISTERED = 1;
	public static final int _STATUS_FOLDER_HANDLED    = 2;
	public static final int _STATUS_FOLDER_HANDLING   = 3;
	
	public static final int _STATUS_FOLDER_CHANGED    = 5;
	public static final int _STATUS_FOLDER_ORPHANE    = 11;
	

	
	public static final int _STATUS_FILE_REGISTERED = 1;

	public static final int _STATUS_FILE_HANDLED    = 2;

	public static final int _STATUS_FILE_LEARNING   = 3;
	public static final int _STATUS_FILE_DESCRIBED  = 4;
	public static final int _STATUS_FILE_HANDLING   = 5;

	public static final int _STATUS_FILE_CHANGED    = 7;

	public static final int _STATUS_FILE_ORPHANE    = 19;
	
	public static final int _FILE_CHANGE_MOD        = 9;
	public static final int _FILE_CHANGE_NEW        = 10;
	public static final int _FILE_CHANGE_DEL        = -3;
	
	public static final int _FILE_CHANGE_NIL        = 0;
	public static final int _FILE_CHANGE_TMP        = 1;
	public static final int _FILE_CHANGE_UNKNOWN    = 7;
	
	public static final int _FILE_CHANGE_MOVE       = 11;
	public static final int _FILE_CHANGE_RENAME     = 12;
	
	public static final int _FOLDER_CHANGE_RENAME   = 22;
	public static final int _FOLDER_CHANGE_DEL      = -23;
	public static final int _FOLDER_CHANGE_NEW      = 23;
	

	
	public String version() ;
	public String changeHistory();
		
	public int count();
	public int count( int type);
	
	public int addListening( String dir) throws FileNotFoundException, Exception;
	public int addListening( String dir, boolean includeSubDirs ) throws Exception ;
	
	public String getListening( String searchStr );
	
	public int removeListening( int processID );
	public int removeListening( String guidStr);
	
	public int removeAll();
	
	public void setDelay( int millis);
	
	public void setActive(boolean _isActive);
	
	public int getDelay();
	
	public Map<Integer, DocObservation> getCurrentListenings();

	public void stop();
	
	public void start() throws Exception;
	
	
	
}
